package com.library.common.utils.books;

import lombok.extern.slf4j.Slf4j;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Package: com.library.common.utils.books
 * @ClassName: BooksCopyUtilss
 * @Author: Yin
 * @Date: 10:52
 * @Description: 副本处理工具类
 */
@Slf4j
public class BooksCopyUtils {

    /** 特殊字符匹配 */
    static Pattern blicenseRegexPattern = Pattern.compile("[:：（）《》、—“”\\\"\\·\\/\\~\\`\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\_\\+\\-\\=\\[\\]\\\\\\|\\.\\>\\<]");

    /**
     * 大类索书号
     *  - 大类索书号的分类号由具体的基本分类号（A） + 详细分类号的第一个分类号
     *  - 正则表达式匹配第一个分类号
     *
     * @param cnType 具体中国图书法分类号
     * @return K837.125.38=536 -> K837
     */
    @Deprecated
    public static String blicenseStrToTypeConcatFirstCnType(String cnType) {
        // 中国图书法分类索书号类型 （改成 首个中国图书法分类 避免太长 K837.125.38=536/63）
        Matcher matcher = blicenseRegexPattern.matcher(cnType);
        if(matcher.find()) {
            int start = matcher.start();
            return cnType.substring(0,start);
        }else{
            return cnType;
        }
    }

    /**
     * 大类索书号
     *  - 大类索书号的分类号由具体的基本分类号（A） + 详细分类号的第一个分类号的首字符
     *
     * @param cnType 具体中国图书法分类号
     * @return K837.125.38=536 -> K8
     */
    public static String blicenseStrToTypeConcatFirstCnTypeChar(String cnType) {
        try{
            return cnType.substring(0,2);
        }catch (Exception e){
            log.error("未找到细化的图书法分类[{}]",cnType);
        }
        return cnType;
    }

}
